草庐IT

java - 将 long 转换为两个 int,反之亦然

全部标签

ruby - 将散列转换为结构

如何在ruby​​中将散列转换为结构?鉴于此:h={:a=>1,:b=>2}我想要一个这样的结构:s.a==1s.b==2 最佳答案 如果您已经定义了一个结构,并且您想要使用散列实例化一个实例:Person=Struct.new(:first_name,:last_name,:age)person_hash={first_name:"Foo",last_name:"Bar",age:29}person=Person.new(*person_hash.values_at(*Person.members))=>#

ruby - 查找两个数组之间的共同值

如果我想比较两个数组并创建一个内插输出字符串,如果数组y中的数组变量存在于x中,我如何获得每个匹配元素的输出?这就是我正在尝试但未完全得到结果的方法。x=[1,2,4]y=[5,2,4]x.eachdo|num|puts"Thenumber#{num}isinthearray"ifx.include?(y.each)end#=>[1,2,4] 最佳答案 可以使用设置交集的方法&为此:x=[1,2,4]y=[5,2,4]x&y#=>[2,4] 关于ruby-查找两个数组之间的共同值,我们在

ruby-on-rails - 我如何在具有事件记录的 Rails 中使用两个不同的数据库?

我需要在不同的Rails模型中使用不同的数据库连接。有没有一种不太hacky的方法来做到这一点?任何链接或搜索关键字都很棒:) 最佳答案 将新部分添加到您的database.yml例如other_development:adapter:mysqldatabase:otherdb_developmentusername:rootpassword:host:localhostother_production:adapter:mysqldatabase:otherdb_productionusername:rootpassword:hos

ruby - 为什么用空格分隔的两个字符串在 Ruby 中连接?

为什么这在Ruby中有效:"foo""bar"#=>"foobar"我不确定为什么要连接字符串而不是给出语法错误。我很好奇这是否是预期的行为,以及它是否是解析器负责争吵的东西(两个没有运算符的字符串被认为是一个字符串)或者语言定义本身正在指定这种行为(隐式连接)。 最佳答案 在C和C++中,stringliterals彼此相邻areconcatenated.由于这些语言影响了Ruby,我猜它是从那里继承的。它现在用Ruby记录:参见thisanswer和thispageintheRubyrepo其中指出:Adjacentstring

ruby - 如何将散列键转换为方法名称?

这是我的哈希:tempData={"a"=>100,"here"=>200,"c"=>"hello"}我需要像下面这样的方法来访问散列键:tempData.a#100tempData.here#200 最佳答案 你可以把你的散列包在OpenStruct中:require'ostruct'tempData={"a"=>100,"here"=>200,"c"=>"hello"}os=OpenStruct.newtempDataos.a#=>100os.here#=>200如果你真的真的想要,你也可以猴子修补Hash类,但我建议不要这样做

ruby - 严格将字符串转换为整数(或零)

对于网络编程,数字以字符串形式出现。但是to_i会将"5abc"转换为5并将"abc"转换为0,都是错误的答案。为了捕获这些,我写道:defnumber_or_nil(s)number=s.to_inumber=nilif(number.to_s!=s)returnnumberend是否有一种更简洁、更符合Ruby标准的方法来完成此转换并检测该字符串不是数字? 最佳答案 使用整数(字符串)如果字符串无法转换为整数,它将引发ArgumentError错误。Integer('5abc')#=>ArgumentError:invalidv

ruby - 比较两个数组忽略Ruby中的元素顺序

我需要检查两个数组是否以任何顺序包含相同的数据。使用虚构的compare方法,我想做的是:arr1=[1,2,3,5,4]arr2=[3,4,2,1,5]arr3=[3,4,2,1,5,5]arr1.compare(arr2)#truearr1.compare(arr3)#false我使用了arr1.sort==arr2.sort,这似乎有效,但是有更好的方法吗? 最佳答案 最简单的方法是使用交叉点:@array1=[1,2,3,4,5]@array2=[2,3,4,5,1]所以声明@array2&@array1==@array2将

ruby - 使用 Ruby 将大写字符串转换为标题大小写

我正在尝试将Ruby中的全大写字符串转换为小写字符串,但每个单词的第一个字符都是大写。示例:将“我的字符串在这里”转换为“我的字符串在这里”。我知道我可以使用.downcase方法,但这会使所有内容都变成小写(“我的字符串在这里”)。我正在扫描文件中的所有行并进行此更改,那么是否有可以通过ruby​​使用的正则表达式来实现此目的?谢谢! 最佳答案 如果您正在使用Rails(您真正需要的只是ActiveSupport,它是Rails的一部分),您可以使用titleize:"MYSTRINGHERE".titleize#=>"MyStr

ruby-on-rails - Rails 3. 如何获得两个数组之间的差异?

假设我有这个包含发货ID的数组。s=Shipment.find(:all,:select=>"id")[#,#,#,#,#]带有货件ID的发票数组i=Invoice.find(:all,:select=>"id,shipment_id")[#,#]发票属于装运。装运有一张发票。所以invoices表有一列shipment_id。要创建发票,我单击“新建发票”,然后会出现一个带有“发货”的选择菜单,因此我可以选择“我要为哪个发货创建发票”。所以我只想显示尚未为其创建发票的货件列表。所以我需要一组还没有发票的货件。在上面的例子中,答案是1、4、5。 最佳答案

ruby - 如何在 Ruby 中将字符串转换为 UTF8

我正在编写一个使用Hpricot的爬虫。它从某个网页下载字符串列表,然后我尝试将其写入文件。编码有问题:"\xC3"fromASCII-8BITtoUTF-8我有在网页上呈现并以这种方式打印的项目:Développementstr.encoding返回UTF-8,因此force_encoding('UTF-8')没有帮助。我如何将其转换为可读的UTF-8? 最佳答案 您的字符串似乎被错误地编码了:"Développement".encode("iso-8859-1").force_encoding("utf-8")#=>"Dév